import re
import time

from django import template

register = template.Library()


@register.filter(is_safe=True)
def datetimeformat(seconds=0):
    """ 将毫秒值格式化成时间格式过滤器 """
    if seconds == 0:
        return '-'
    return time.strftime('%Y-%m-%d %H:%M', time.localtime(seconds))


@register.filter(is_safe=True)
def file_ext_format(ext=None):
    """ 根据文件拓展名获取对应图标样式 """
    if not ext:
        return '#icon-file'
    ext = ext.lower()
    if re.fullmatch(r'\.pptx?', ext):
        return '#icon-ppt'
    if re.fullmatch(r'\.xlsx?', ext):
        return '#icon-excel'
    if re.fullmatch(r'\.docx?', ext):
        return '#icon-docx'
    if re.fullmatch(r'\.pdf', ext):
        return '#icon-PDF'
    if re.fullmatch(r'\.txt', ext):
        return '#icon-txt'
    if re.fullmatch(r'\.exe', ext):
        return '#icon-fj-exe'
    if re.fullmatch(r'\.pyc?', ext):
        return '#icon-python'
    if re.fullmatch(r'\.ja(va|r)', ext):
        return '#icon-java'
    if re.fullmatch(r'(\.zip|\.rar|\.cab|\.arj|\.lzh|\.ace|\.7z|\.tar|\.gzip|\.uue|\.bz2|\.iso|\.z)', ext):
        return '#icon-rar'
    if re.fullmatch(r'(\.avi|\.asf|\.wmv|\.avs|\.flv|\.mkv|\.mov|\.3gp|\.mp4|\.mpg|\.mpeg|\.dat|\.ogm|\.vob|\.rm|\.rmvb|\.ts|\.tp|\.ifo|\.nsv)', ext):
        return '#icon-video'
    if re.fullmatch(r'(\.mp3|\.aac|\.wav|\.wma|\.cda|\.flac|\.m4a|\.mid|\.mka|\.mp2|\.mpa|\.mpc|\.ape|\.ofr|\.ogg|\.ra|\.wv|\.tta|\.ac3|\.dts)', ext):
        return '#icon-music'
    if re.fullmatch(r'(\.jpg|\.bmp|\.eps|\.gif|\.mif|\.miff|\.png|\.tif|\.tiff|\.svg|\.wmf|\.jpe|\.jpeg|\.dib|\.ico|\.tga|\.cut|\.pic)', ext):
        return '#icon-image'
    return '#icon-file'
